home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 6
/
FM Towns Free Software Collection 6.iso
/
t_os
/
tifsl
/
tifsl.c
next >
Wrap
Text File
|
1993-07-08
|
3KB
|
130 lines
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winb.h>
#include <te.h>
#include <fntb.h>
#include <gui.h>
#include <file_dlg.h>
int
GUI_ClassInit()
{
int ret; /* エラーコード */
ret = MMI_initHyper(); /* ハイパ */
ret |= MMI_initDialogL40(); /* ダイアログ */
ret |= MMI_initAlertL40(); /* アラート */
ret |= MMI_initMessageL40(); /* メッセージ */
ret |= MMI_initButtonL40(); /* ボタン */
ret |= MMI_initDrawButtonL40(); /* ドロウボタン */
ret |= MMI_initIconL40(); /* アイコン */
ret |= MMI_initToggleIconL40(); /* トグルボタン */
ret |= MMI_initScrollBarL40(); /* スクロールバー */
ret |= MMI_initTextL40(); /* テキスト */
ret |= MMI_initListMenuL40(); /* リストメニュー */
return ret ? 1 : 0;
}
int
GUI_DspFileList(char *userpath)
{
char *ExtStr[2] = {"*.TIF",NULL};
unsigned int MSlctCnt = 0;
int ret,Atr;
*userpath = 0;
FDG_InitFileDlg();
FDG_SaveCurDir();
FDG_SetTitle("背景用TIF","確定","取消");
ret = FDG_DspFileDlg
(MJ_BASEOBJ,FDG_FILEONLY | FDG_TEXT,userpath,ExtStr,&MSlctCnt);
if(ret == 1)FDG_GetPathName(userpath,&Atr,0);
FDG_RecovCurDir();
FDG_FreeFileDlg();
return ret;
}
int
GetFileSize(char *fname)
{
VECTOR saveDta;
FMDTA dta;
FM_SaveDta(&saveDta);
FM_SetDta(&dta);
if(FM_SearchFirstFile(fname,0xff))dta.size = 0;
FM_RecovDta(&saveDta);
return dta.size;
}
int
main(int argc,char *argv[])
{
char path[84],tmenutif[84];
FILE *fp = NULL,*ofp = NULL;
char *p = NULL;
int fsize;
char drv = 0;
char *env;
FM_SetVector() ;
if(argc > 1){ /* ドライブ指定がある */
drv = *argv[1];
}else{
if(NULL != (env = getenv("ICN"))){
drv = *env;
}
}
sprintf(tmenutif,drv ? "%c:\\TMENU.TIF" : "\\TMENU.TIF",drv);
if(MMI_Open(NULL)){ /* GUIライブラリを開ける */
return 1; /* GUIの初期化。失敗はERRを返す */
}
if(GUI_ClassInit()){ /* GUI基本部品の初期化 */
goto errout;
}
if(!GUI_DspFileList(path)){
goto errout;
}
if(0 >= (fsize = GetFileSize(path)))goto errout;
if(NULL == (p = TL_malloc(fsize))){
goto errout;
}
if(NULL == (fp = fopen(path,"rb"))){
goto errout;
}
if(NULL == (ofp = fopen(tmenutif,"wb"))){
goto errout;
}
fread(p,fsize,1,fp);
fwrite(p,fsize,1,ofp);
fclose(fp);
fclose(ofp);
TL_free(p);
MMI_Close();
FM_ResetVector() ;
return 0;
errout:;
if(fp)fclose(fp);
if(ofp)fclose(ofp);
if(p)TL_free(p);
MMI_Close();
FM_ResetVector() ;
return 1;
}